//--------------------------------------------------------------------------------
// This file is part of the Windows Workflow Foundation Sample Code
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// This source code is intended only as a supplement to Microsoft
// Development Tools and/or on-line documentation.  See these other
// materials for detailed information regarding Microsoft code samples.
// 
// THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//--------------------------------------------------------------------------------

using System;
using System.Configuration;

namespace Microsoft.Samples.Workflow.UI
{
    public class WorkflowElement : ConfigurationElement
    {
        private const string _mode = "mode";
        private const string _value = "value";
        private const string _rulesFile = "rulesFile";

        public WorkflowElement()
        {
        }

        [ConfigurationProperty(_mode, DefaultValue = null)]
        public string Mode
        {
            get
            {
                return (string)base[_mode];
            }
            set
            {
                if (value == null)
                {
                    throw new ArgumentNullException("value");
                }

                base[_mode] = value;
            }
        }

        [ConfigurationProperty(_value, DefaultValue = null)]
        public string Value
        {
            get
            {
                return (string)base[_value];
            }
            set
            {
                if (value == null)
                {
                    throw new ArgumentNullException("value");
                }

                base[_value] = value;
            }
        }

        [ConfigurationProperty(_rulesFile, DefaultValue = null)]
        public string RulesFile
        {
            get
            {
                return (string)base[_rulesFile];
            }
            set
            {
                if (value == null)
                {
                    throw new ArgumentNullException("value");
                }

                base[_rulesFile] = value;
            }
        }
    }
}
